π§βπ» chore(xcode): adopt the Xcode 26.6 recommended build settings - #49
Merged
Conversation
Xcode applied these on opening the project. Two are worth keeping: - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED flags user-facing strings that never reach the catalog β the exact leak CLAUDE.md's localization rules exist to prevent, now caught by the compiler instead of review. - STRING_CATALOG_GENERATE_SYMBOLS generates symbols for catalog keys, so a renamed or deleted key fails the build instead of silently falling back to the key itself at runtime. The string catalog was also rewritten by the same pass; it is left out of this commit because it needs its own look (see the PR description). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Xcode applied its recommended settings when the project was opened. Two of them earn their place:
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZEDflags user-facing strings that never reach the catalog β precisely the leak CLAUDE.md's localization rules exist to prevent. The compiler now catches it instead of review.STRING_CATALOG_GENERATE_SYMBOLSgenerates symbols for catalog keys, so a renamed or deleted key breaks the build rather than silently rendering the key itself at runtime.Plus
LastUpgradeCheck/LastUpgradeVersionbumped to 2660.Verified:
xcodebuild buildsucceeds.Left out on purpose: the string catalog
The same pass also rewrote
Localizable.xcstringsβ 5409 lines. Parsing both versions shows the reformatting is almost entirely cosmetic, but five keys changed in substance:LabelsandMemberslostextractionState: "manual"Unexpected error: %@,Added to "%@", and the OIDCauthorizationUrlerror gainedextractionState: "stale"stalemeans Xcode's extraction pass no longer found those strings in the code it built. Either they are genuinely dead and should be removed, or they are reached in a way extraction cannot see and themanualstate needs restoring. Committing it blind risks tripping the localization guard in CI, and the answer differs per key β so it stays out until someone looks. The change is preserved locally in a stash.π€ Generated with Claude Code